<html><head><meta charset="utf-8"/><title>Array</title></head><body><h1>Array</h1><div class="x-wiki-content x-main-content">
 <p>
  对于数组，除了
  <code>
   map()
  </code>
  、
  <code>
   reduce
  </code>
  、
  <code>
   filter()
  </code>
  、
  <code>
   sort()
  </code>
  这些方法可以传入一个函数外，
  <code>
   Array
  </code>
  对象还提供了很多非常实用的高阶函数。
 </p>
 <h3>
  every
 </h3>
 <p>
  <code>
   every()
  </code>
  方法可以判断数组的所有元素是否满足测试条件。
 </p>
 <p>
  例如，给定一个包含若干字符串的数组，判断所有字符串是否满足指定的测试条件：
 </p>
 <pre><code class="language-x-javascript">'use strict';
----
var arr = ['Apple', 'pear', 'orange'];
console.log(arr.every(function (s) {
    return s.length &gt; 0;
})); // true, 因为每个元素都满足s.length&gt;0

console.log(arr.every(function (s) {
    return s.toLowerCase() === s;
})); // false, 因为不是每个元素都全部是小写
</code></pre>
 <h3>
  find
 </h3>
 <p>
  <code>
   find()
  </code>
  方法用于查找符合条件的第一个元素，如果找到了，返回这个元素，否则，返回
  <code>
   undefined
  </code>
  ：
 </p>
 <pre><code class="language-x-javascript">'use strict';
----
var arr = ['Apple', 'pear', 'orange'];
console.log(arr.find(function (s) {
    return s.toLowerCase() === s;
})); // 'pear', 因为pear全部是小写

console.log(arr.find(function (s) {
    return s.toUpperCase() === s;
})); // undefined, 因为没有全部是大写的元素
</code></pre>
 <h3>
  findIndex
 </h3>
 <p>
  <code>
   findIndex()
  </code>
  和
  <code>
   find()
  </code>
  类似，也是查找符合条件的第一个元素，不同之处在于
  <code>
   findIndex()
  </code>
  会返回这个元素的索引，如果没有找到，返回
  <code>
   -1
  </code>
  ：
 </p>
 <pre><code class="language-x-javascript">'use strict';
----
var arr = ['Apple', 'pear', 'orange'];
console.log(arr.findIndex(function (s) {
    return s.toLowerCase() === s;
})); // 1, 因为'pear'的索引是1

console.log(arr.findIndex(function (s) {
    return s.toUpperCase() === s;
})); // -1
</code></pre>
 <h3>
  forEach
 </h3>
 <p>
  <code>
   forEach()
  </code>
  和
  <code>
   map()
  </code>
  类似，它也把每个元素依次作用于传入的函数，但不会返回新的数组。
  <code>
   forEach()
  </code>
  常用于遍历数组，因此，传入的函数不需要返回值：
 </p>
 <pre><code class="language-x-javascript">'use strict';
----
var arr = ['Apple', 'pear', 'orange'];
arr.forEach(console.log); // 依次打印每个元素
</code></pre>
</div>
</body></html>